package org.chat.hhdchat.Controller;

import org.chat.hhdchat.Service.UserService;
import org.chat.hhdchat.component.R;
import org.chat.hhdchat.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController         // 标识这是一个 RESTful 控制器
@RequestMapping("/api/users")  // 定义基础路径
public class UserController {
    private final UserService userService;

    // 通过构造函数注入依赖（推荐方式）
    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    /**
     * 用户注册
     * POST /api/users/register
     */
    @PostMapping("/register")
    public R<User> registerUser(@RequestBody User user) {
        User savedUser = userService.register(user);
        return R.success(savedUser);  // 返回 200 OK 和注册后的用户信息
    }

    /**
     * 用户登录（验证）
     * POST /api/users/login
     */
    @PostMapping("/login")
    public R<User> login(@RequestBody User user) {
        User authenticatedUser = userService.login(user.getUsername(), user.getPassword());
        return R.success(authenticatedUser);
    }

    /**
     * 获取用户的好友列表
     * GET /api/users/{userId}/friends
     */
    @GetMapping("/{userId}/friends")
    public R<List<User>> getFriends(@PathVariable String userId) {
        List<User> friends = userService.getFriends(userId);
        return R.success(friends);
    }
}
